package cn.zzz.openplatform.amap.model.direction;

import cn.hutool.core.annotation.Alias;
import cn.zzz.openplatform.amap.constant.AmapUrlConstant;
import cn.zzz.openplatform.amap.model.AmapOpenApiRequest;
import lombok.*;

/**
 * 步行路径规划请求参数
 * <a href="https://lbs.amap.com/api/webservice/guide/api/direction#t4">接口文档</a>
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AmapWalkingDirectionRequest extends AmapOpenApiRequest<AmapWalkingDirectionResponse> {

    /**
     * 出发点
     * 规则：lon,lat（经度,纬度），如117.500244, 40.417801 经纬度小数点不超过6位
     * 必填：是
     */
    private String origin;

    /**
     * 目的地
     * 规则：lon,lat（经度,纬度），如117.500244, 40.417801 经纬度小数点不超过6位
     * 必填：是
     */
    private String destination;

    /**
     * 起点POI ID
     * 可选：建议在起点为POI时填充此值，可提升路线规划准确性
     */
    @Alias("origin_id")
    private String originId;

    /**
     * 目的地POI ID
     * 可选：建议在目的地为POI时填充此值，可提升路线规划准确性
     */
    @Alias("destination_id")
    private String destinationId;

    @Override
    public Class<AmapWalkingDirectionResponse> getResponseClass() {
        return AmapWalkingDirectionResponse.class;
    }

    @Override
    public String getUrl() {
        return AmapUrlConstant.WALKING_PATH_PLAN_URL;
    }
}
